Programmable, computer-aided, i.e., program-based control devices are nowadays usually used for controlling automated robotal devices, such as multiaxial industrial robots, portal robots (robots arranged and movable in a portal frame), SCARA robots (Selective Compliance Assembly Robot Arm—a robot selectively compensating in one plane, pivoted arm robot) or palletizing robots. Procedures for transforming kinematic and dynamic variables and system states of the robot for the purpose of use for different control tasks are a central part of such robot controls. This contains, for example, the position, orientation, velocity and acceleration (of the end effector or the axes), forces and torques in the transmission bearings, desired currents, the kinetic energy of the system, as well as mechanical stresses on the basis of known machine data. These data comprise, for example, geometry descriptions of the robotal device, such as lengths or angles, weights, centers of gravity of masses, and inertias as well as material parameters, such as rigidities, coefficients of friction and coefficients of expansion or the like. Other influential variables may be measured values supplied by sensors, such as temperature, dilatations and distortions.
The transformation of the variables and system states mentioned above as examples may take place in different directions, and a distinction is to be made additionally depending on whether actual or desired values are used as input variables. The following shall be mentioned here as examples:                The determination of the desired current for a robot axis from the desired position of that axis, taking into consideration the effect of the force of gravity, the desired velocity, the desired acceleration and the mass-moment of inertia, taking a desired temperature into consideration;        the determination of an estimated transmission torque from the actual velocity, the actual acceleration and the mass moment of inertia of the axis, taking an actual temperature into consideration; and        the determination of the Cartesian path deviation from desired positions along axes and contouring errors, i.e., differences between the desired position and the actual position.        
According to their basic design, the kinematic structures of robotal devices, the so-called “kinematics,” are divided into different classes, the division being determined essentially by the number of axes (linear axes, axes of rotation, ball and socket joints, . . . ), the connection of the axes by the components of the robot as well as the relative position of the axes in relation to one another. Whether closed structures (“loops”) are formed or whether there is an open kinematic chain is a decisive aspect concerning the connection of the axes. The relative position of the axis is characterized essentially by orthogonality relationships and the intersections of the axes.
The term “class of kinematics” used means that only the above-mentioned embodiment and arrangement of the axes is decisive for the mathematical-physical treatment for the mathematical procedures mentioned, which are to take place in a corresponding control, whereas concrete geometric dimensions of, for example, robots of different sizes for different tasks emerge only as parameters in the corresponding description, without affecting the complexity of the processes per se.
Robot controls are currently typically able to operate robotal devices from only one or a few (fewer than 5) of such classes of kinematics.
The procedures necessary for the control of a robotal device, which were mentioned in the introduction, comprise essentially:
1. Transformations between axis angles and cartesian positions and orientations as well as between the derivations of these variables, i.e., conversion of axis velocities and accelerations into Cartesian velocities and velocities of the reorientation with the corresponding accelerations and vice versa.
These so-called forward and backward transformations are the basis for Cartesian processes; no cartesian path programming of the robot is possible without such procedures. A kinematic model of the robot, i.e., a geometric description without consideration of masses, inertias as well as the resulting forces and torques, is usually used here.
2. Determination of forces, torques and kinetic energy; no time-optimal motion programming and no related model based control is possible without such procedures.
The basis for the calculation is usually a rigid body model (see, among other things, Craig, Introduction to Robotics: Mechanics and Control, Addison Wesley, 1986), wherein friction can also be taken into account. In an expansion, elasticities can also be taken into account in the drivelines. Such a robot model is also called a dynamic model and is the basis for motion planning.
3. Calculation of functions of the kinematic and dynamic variables as auxiliary variables, e.g., of the inertia around a robot axis as an important variable for an axis control.
Variables such as the inertia vary in a robot as a function of other parameters, for example, the payload and axis angles of axes following in an kinematically open chain. Such function values are used, for example, for model-based control.
4. Calculation of partial derivations of the above-mentioned functions.
The partial derivations are needed                for the conversion of variables given for given axes and in a cartesian path by means of the Jakobi matrix;        for the identification of system parameters, e.g., according to the least-squares principle. Such identification methods use partial derivations in the form of the Jakobi matrix. A sensitivity analysis of the parameters requires the Hesse matrix, i.e., the second-order partial derivations. However, such methods are usually used outside the robot control (cf. Kovacs, Computer-aided symbolic robot kinematics, Technische Universität Berlin, 1991).        As additional variables in the control loop.        
5. Combinations of the procedures 1 through 3, e.g., kinematic calculation (Procedure 1), taking the deflection of the structure caused by the masses and the force of gravity into account (Procedure 2).
A robot control processes motion commands from different sources, such as program motions, manual displacing motions, and interrupt motions. Motion planning designated the part of a compiler or interpreter that calculates the geometric path of the tool on the basis of certain criteria from the motion commands of a robot programming language (which usually contains the type of point-to-point motion, linear motion, circular motion, spline motion, which are in turn characterized by the target of the motion), possibly including the course of the velocity on the path. This “plan” generated in advance for the course of the motion, is then “interpolated,” i.e., points of support are calculated on the planned path—mostly at fixed time intervals—and are passed on—as axis angles—to the drives via the drive interface. For example, a checking is performed in the planning to determine whether the axis angles are within the permissible range (calling of the backward transformation) and/or a time-optimal path is planned (calling of the inverse dynamic model).
The corresponding axis angles are calculated in the interpolation for each cartesian point of support (calling of the backward transformation).
Depending on the current position, velocity, acceleration and load, pre-control torques are calculated in the drive interface. Different derivations are possibly calculated in the control unit.
While no model of the line is used in the classical cascade control of drives and partial derivations are therefore unnecessary, a nonlinear state space model d/dt x=f (x, u) is transformed into a linear model in modern nonlinear, model-based control processes, such as “feedback linearization” (A. Isidori, Non-linear Control Systems, Springer Verlag, 1989) or “backstepping” (Kokotovic: Non-linear and Adaptive Control Design, Wiley Interscience, 1995), and standard methods of linear control theory are then used for this linear model. The transformation contains derivations. This approach of the “Non-linear Model Predictive Control” solves an optimization problem over a certain time horizon in each control cycle (Jan Maciejowski: Predictive Control with Constraints, Prentice Hall, 2001). A zero position of the gradient, which is likewise characterized by partial derivations, is usually determined for the solution of minimization problems.
The above procedures can be performed mathematically with the use of certain standard algorithms of an analytical and/or numeric nature. The following designations will be used below for the mathematical formulation of the procedures:                n number of axes or joints        θi, i=1, . . . , n joint coordinates (angle in case of hinges, lengths in case of rectilinear sliding pairs; scalar)        (x, y, z, a, b, c, S) cartesian position (S: configuration information; see below).        
The above-mentioned (transformation) procedures 1 through 5 can be made available in different ways due to the internal structure of the particular robot control used, because they are not set unambiguously in terms of their input and output variables. This shall be shown below based on the example of the backward calculation in case of a kinematics with open chain, i.e., the determination of joint coordinates in case of a given cartesian position of the robot tool (end effector):                Backward calculation in case of a six-armed collapsible robot, i.e., determination of axis angles for a given cartesian position: (x, y, z, a, b, c, S)→(θ1, . . . , θm).        
The input variables x, y, z, a, b, c describe the desired position and desired orientation here, for example, via roll-pitch-yaw angles, whereas the additional variable S (typically an integer interpreted as a bit sequence) contains a piece of information that is to be selected from among the different solutions of the calculation. It is implicitly assumed here that an unambiguous solution exists. The additional pieces of information can be preset, for example, in the form of permissible angle ranges.
Backward calculation with quantitative result:(x, y, z, a, b, c)→{N,θi,j}, j=1, . . . , N. 
The number of possible solutions N is provided, together with the particular solutions as a result, by this type of backward calculation. The additional information S is not necessary here. It is implicitly assumed that a finite number of solutions exists.                Backward calculation with a result as close to a given position as possible: (x, y, z, a, b, c, φi)→(θ1, . . . , θn).        
The solution whose euclidean distance becomes minimal, i.e., ∥φi−θi∥=min, is determined for a given cartesian position (x, y, z, a, b, c) and given axis angles (φi).
In case of processes and devices of the type described in the introduction, which are known in advance, one or more of these different variants are selected and implemented by the manufacturer of the control as a preferred procedure (as preferred procedures). Kinematic data (lengths, angles), dynamic data (masses, inertias) and optionally other physical parameters are stored as parameters for the procedures 1 through 5 in corresponding machine descriptions that belong to them.
A fundamental restriction arises during the implementation for mathematical reasons: It is not possible to specify a general mathematical process for determining all procedures 1 through 5 from a given geometric and dynamic description of a robot. Some fundamental mathematical problems in this connection are:                The backward calculation in case of kinematics with open chain can be reduced to the determination of the zero positions of polynomials via the so-called tan/2 substitution, but no analytical solution exists for general polynomials beginning from the fifth degree (van der Waerden, Algebra I/II, Springer, 1993). Thus, no analytical solution of the backward calculation is possible for any desired oblique positions of axes and for any desired distance between axes. In addition, the effort needed for the calculation also increases greatly for the analytical solution—if any such solution exists—in case of the use of the most modern methods (Kovacs, elsewhere). An analytical solution is to be preferred to a numerical one, because numerical methods are, for example, incapable of determining the number of possible solutions.        The forward calculation is trivial in case of kinematics with open chain, because only matrices must be multiplied here (Craig, elsewhere; Paul, Robot Manipulators, MIT Press, 1983). No analytical forward calculation is known, as a rule, in case of kinematics with kinematic loops, e.g., hexapods, so that what was said above in connection with the backward calculation correspondingly applies here. The backward calculation in case of loop kinematics can, by contrast, be often determined in a simple manner analytically (Möller, A Method for the Automatic Analysis of Multi-Loop Spatial Mechanisms, Dissertation, Universität Stuttgart, 1992).        The calculation of the “inverse dynamics” is possible in case of open kinematic chains via the so-called Euler-Newton algorithm, if the axis coordinates are known. As in the case of the backward calculation of kinematics with open chain, there is no general solution in case of closed kinematic chains.        If no analytical calculation method is known in case of a certain procedure, there is usually no possibility for analytical calculation for the partial derivatives, either (see above).        
Nevertheless, the manufacturer of a control strives to be able to operate the largest possible number of types of kinematics with a given control. This is especially true if this manufacturer offers both controls and kinematics. On the other hand, a control shall also be able to be operated with kinematics of third-party manufacturers, who do not offer controls of their own themselves. A manufacturer of controls had two possibilities for this up to now: On the one hand, the implementation of all procedures 1 through 5 for a limited number of kinematics, and, on the other hand, the use of (iterative) numeric methods combined with analytical solutions. The fact that all procedures 1 through 5 must be implemented for each kinematic, so that the scope of the control also grows with the number of the kinematics to be supported at will, besides the effort needed for the development and care, is to be considered to be disadvantageous here, in particular. Consequently, if newly developed kinematics or third-party kinematics of another manufacturer are to be operated with a given control, this is possible only if the corresponding kinematics falls within one of the already implemented classes of kinematics or can be calculated with the procedures of these kinematics.
The use of (iterative) numerical methods combined with analytical solutions shall be explained below based on the interaction of forward and backward transformations in case of a kinematic with open chain. Only a matrix multiplication is necessary for the forward calculation, and the matrix entries are composed of the joint variables and kinematic descriptions (for example, the Denavit-Hartenberg parameters) as well as of the coordinate systems for the tool, the robot base, etc. The position of the end effector and the orientation P of the end effector are given mathematically as a function of the axis variable θi: P=f(θi).
The necessary parameters can be stored in a data set for the machine description. According to the statements made above, the back transformation cannot be solved, in general, analytically, so that a method for the numerical solution of systems of equations of the above form is used, instead, for a given P (Münch, Universal coordinate transformation for industrial robots, www.maschinenbau.hs-magdeburg.de/personal/bargfrede/-fue_robotics.html).
What is to be considered to be disadvantageous in this procedure is, in particular, the fact that it is not possible to implement the procedures 1 through 5 in a generally valid form, and especially the lack of ambiguity of the solution, as well as the convergence characteristic, which is critical for real-time applications, and the often insufficient accuracy argue against the numerical methods, which are used by necessity.
A manufacturer of kinematics nowadays depends on software development cycles of the control manufacturer: Even if the manufacturer of the kinematics is able to implement the procedures 1 through 5 by calculation, he has no possibility of utilizing these with an existing control software, Moreover, the manufacturer of the kinematics usually wishes to develop the procedures 1 through 5 himself in order not to be forced to have to disclose operational know-how to the manufacturer of the control. However, this is not possible in case of the processes and the devices of the type mentioned in the introduction, because the manufacturer of the control would conversely have to disclose detail information concerning the control to the manufacturer of the kinematics.